const joi = require('joi')

// 定义用户名和密码的验证规则
const username = joi.string().alphanum().min(1).max(10).required()
const password = joi.string().pattern(/^[\S]{6,12}$/).required()

// 定义id和nickname的验证规则
const id = joi.number().min(1).integer().required() //integer 整数
const nickname = joi.string().required()
const email = joi.string().email().required()

// 定义更新头像的验证规则
// const avatar = joi.string().dataUri().required()
const avatar = joi.string().required()

// 定义分类name和alias规则对象
const name = joi.string().required()
const alias = joi.string().alphanum().required()

// 删除

// 定义验证注册和登录表单数据的规则对象
exports.reg_login_schema = {
    body: {
        username,
        password,
    }
}
// 更新用户信息的规则对象
exports.update_userinfo_schema = {
    body: {
        id,
        nickname,
        email,
    }
}
// 重置密码的规则对象
exports.update_password_schema = {
    body: {
        // 使用password这个规则,验证req . body . oldPwd的值oldPwd : password,
        oldPwd: password,
        // 使用joi.not(joi.ref ( ' oldPwd ' ) ) .concat(password)）规则，验证req. body . newPwd 的值//解读:
        // 1. joi.ref( ' oldPwd ')表示newPwd 的值必须和 oldPwd 的值保持一致
        // 2. joi.not(joi.ref( 'oldPwd ' ))表示 newPwd 的值不能等于 oldPwd 的值
        // 3. .concat()用于合并 joi.not(joi.ref( 'oldPwd' ))和 password这两条验证规则
        newPwd: joi.not(joi.ref('oldPwd')).concat(password),
    }
}
// 更新用户头像的规则对象
exports.update_avatar_schema = {
    body: {
        avatar,
    }
}
// 分类的规则对象
exports.add_cate_schema = {
    body: {
        name,
        alias,
    }
}
// 删除分类
// 分类的规则对象
exports.delete_cate_schema = {
    params: {
        id
    }
}

exports.update_cate_schema = {
    body: {
        Id: id,
        name,
        alias,
    }
}
